package com.core.zyyz.pcmc.service;


import com.core.zyyz.pcmc.domain.PcmcRole;
import com.core.zyyz.pcmc.domain.PcmcRoleUser;
import com.core.zyyz.pcmc.domain.PcmcUser;
import java.util.List;



/**
 * 角色Service接口
 *
 * @author core
 * @date 2024-10-15
 */
public interface PcmcRoleService {
    /**
     * 查询角色
     *
     * @param roleCode 角色主键
     * @return 角色
     */
    public PcmcRole selectPcmcRoleByRoleCode(String roleCode);

    /**
     * 查询角色列表
     *
     * @param pcmcRole 角色
     * @return 角色集合
     */
    public List<PcmcRole> selectPcmcRoleList(PcmcRole pcmcRole);

    /**
     * 新增角色
     *
     * @param pcmcRole 角色
     * @return 结果
     */
    public int insertPcmcRole(PcmcRole pcmcRole) throws Exception;

    /**
     * 修改角色
     *
     * @param pcmcRole 角色
     * @return 结果
     */
    public int updatePcmcRole(PcmcRole pcmcRole);

    /**
     * 批量删除角色
     *
     * @param roleCodes 需要删除的角色主键集合
     * @return 结果
     */
    public int deletePcmcRoleByRoleCodes(String[] roleCodes);

    /**
     * 删除角色信息
     *
     * @param roleCode 角色主键
     * @return 结果
     */
    public int deletePcmcRoleByRoleCode(String roleCode);

    /**
     *查询角色未授权用户
     * @return
     */
    List<PcmcUser> queryRoleUnGrantUserList();
    /**
     *查询角色已授权用户
     * @param param
     * @return
     */
    List<PcmcUser> queryRoleGrantUserList(PcmcUser param);

    /**
     * 角色授权给用户
     *
     * @param pcmcRoleUser
     */
    public void insertUserAuth(PcmcRoleUser pcmcRoleUser);
}
